/**
 * 文件名称:  ITBcRoleService.java
 * 文件序号:  序号
 * 内容描述:  ITBcRoleService接口
 * 版权声明:  山东鸿蝶信息技术有限公司
 * 创建用户:  MissJin
 * 创建日期:  2017/1/10
 * 修改用户:  无
 * 修改日期:  无
 * 修改说明:  无
 * 文件版本:
 * 文件路径:
 */
package com.hongdee.rbac.role.service;

import com.hongdee.rbac.role.entity.TBcRole;

import java.util.List;
import java.util.Map;

/**
 * Created by My on 2017/1/10.
 */
public interface ITBcRoleService {
    /**
     * 方法名称: page
     * 方法描述: 分页查询
     * 参数名称: Map<String, Object> params
     * 参数名称：start 当前页数
     * 参数名称：limit 页面大小
     * 返回内容: 无
     * 异常说明: Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/10
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    Map page(String start, String limit, String uid, String searchValue) throws Exception;

    /**
     * 方法名称: info
     * 方法描述: 根据 ID 查询实体详情
     * 参数名称: String id
     * 返回内容: TScmDicSercont 实例
     * 异常说明: Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/10
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    Map info(String id) throws Exception;

    /**
     * 方法名称: res
     * 方法描述: 查询TBcRoleResource中id所对应的资源
     * 参数名称:
     * 返回内容: List<ru_id>角色所对应资源id数据集
     * 异常说明: Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/13
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    List<String> res(String id) throws Exception;

    /**
     * 方法名称: del
     * 方法描述: 根据主键ID 集合删除记录
     * 参数名称: String ids
     * 返回内容: 无
     * 异常说明: Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/11
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    void update(String ids, String status) throws Exception;

    /**
     * @param data @Service标注的实体
     * @param uid  登录用户 token
     * @return data @Service标注的实体
     * @throws Exception
     * @desc 保存角色
     */
    TBcRole save(TBcRole data, String uid) throws Exception;

    /***
     *
     * @param id 角色主键
     * @param resIds 分配的资源主键数据
     * @throws Exception
     */
    void saveRes(String id, String[] resIds) throws Exception;


    /**
     * @param uid 异常
     * @return 角色列表
     * @throws Exception 基类异常
     * @desc 根据当前登录用户查询其可进行分配的角色
     * @author zhangkai
     * @date 2017/2/11
     * @time 09:37
     * @update_user
     * @update_time
     * @update_desc:
     */
    List tree(String uid, String type) throws Exception;

    /**
     * @param rId 角色 ID
     * @return 角色列表
     * @throws Exception 基类异常
     * @desc 根据当前登录用户查询其可进行分配的角色
     * @author zhangkai
     * @date 2017/2/11
     * @time 09:37
     * @update_user
     * @update_time
     * @update_desc:
     */
    List checkedResTree(String rId) throws Exception;
    /**
     * @param
     * @return Map
     * @throws Exception
     * @desc    角色转换
     * @author 徐钦勇
     */
    public Map convert() throws Exception;


    /**
     * 根据当前登录用户ID及要处理操作的角色ID
     * 判定该角色是否在该公司下
     * @param uid
     * @param roleId
     * @param status
     * @throws Exception
     */
    public void startAndStopRole(String uid,String roleId,String status) throws Exception;

    /**
     * 根据当前登录用户ID及要处理操作的角色ID
     * 判定该角色是否在该公司下
     * @param uid
     * @param roleId
     * @return
     * @throws Exception
     */
    public boolean checkCompanyInfo(String uid,String roleId) throws Exception;

    public List<Map<String, Object>> buildDeptChild(String opId,List<String> deptList) throws Exception;

    public List<Map<String,Object>> getRoleDateByUid(String uid) throws Exception;

    /**
     * @return
     * @throws Exception
     * @desc 角色下拉列表
     * @author 于扬
     */
    public List<Map> combo(String oid) throws Exception;
    /**
     * @return
     * @throws Exception
     * @desc 角色转换
     * @author 于扬
     */
    public Map<String, String> scmconvert(String oid) throws Exception;

}
